package frpc.boot.annotation;

import frpc.application.web.IRedisManagerController;
import frpc.application.web.RedisManagerController;
import frpc.boot.centre.RedisConfigManagerCentre;
import frpc.boot.centre.RedisWebManagerRegistrar;
import frpc.boot.manager.ICacheDescriptionManager;
import frpc.boot.properties.DefaultCacheDescriptionAnnotationConfig;
import org.springframework.context.annotation.Import;

import java.lang.annotation.*;

/**
 * 注解描述:  开启Redis注解
 *
 * @author 王雷
 * @version 1.0.0
 * @date 2021/4/16 0016 上午 10:52
 */
@Documented
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Import({RedisConfigManagerCentre.class, RedisWebManagerRegistrar.class})//, RedisControllerConfig.class
public @interface EnableRedisManager {

    /**
     * 功能描述：注入需要托管的Redis管理交互接口对象
     *
     * @date : 2022/6/22 0022 下午 7:13
     */
    Class<? extends IRedisManagerController> redisMessageControllerBean() default RedisManagerController.class;

    /**
     * 功能描述：注入需要托管的Redis缓存配置
     *
     * @date : 2022/6/22 0022 下午 7:13
     */
    Class<? extends ICacheDescriptionManager> redisMessageManagerBean() default DefaultCacheDescriptionAnnotationConfig.class;

    /**
     * 功能描述：Redis属性描述对象
     * @date : 2022/10/15 0015 上午 11:27
     */
    Class<?>[] redisAttributeDescription() default {};
}
